package com.heima.freemarker.controller;

import com.heima.freemarker.entity.Student;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

@Controller
public class HelloController {
    @GetMapping("/basic")
    public String test(Model model) {
//        存文本形式的参数
        model.addAttribute("name", "freemarker");
//        存实体相关的参数
        Student student = new Student();
        student.setName("影帝");
        student.setAge(18);
        model.addAttribute("stu", student);
        return "01-basic";
    }

    @GetMapping("/list")   //测试集合指令 freemarker
    public String list(Model model) {

        Student stu1 = new Student();
        stu1.setName("小一");
        stu1.setAge(45);
        stu1.setMoney(123154.2f);
        stu1.setBirthday(new Date());

        Student stu2 = new Student();
        stu2.setName("小二");
        stu2.setAge(25);
        stu2.setMoney(4.2f);
//      将两个学生对象放到集合中
        ArrayList<Student> stus = new ArrayList<>();
        stus.add(stu1);
        stus.add(stu2);
//        将集合放到model中
        model.addAttribute("stus", stus);

//        创建一个map  将学生对象放到集合中
        HashMap<String, Object> map = new HashMap<>();
        map.put("stu1", stu1);
        map.put("stu2", stu2);
        model.addAttribute("stumap", map);
        return "02-list";
    }

    @GetMapping("operation")
    public String testOperation(Model model) {
        Date now = new Date();
        model.addAttribute("date1", now);
        model.addAttribute("date2", now);
        return "03-operation";
    }

    @GetMapping("innerFunc")
    public String testInnerFunc(Model model) {
        //1.1 小强对象模型数据
        Student stu1 = new Student();
        stu1.setName("小强");
        stu1.setAge(18);
        stu1.setMoney(1000.86f);
        stu1.setBirthday(new Date());
        //1.2 小红对象模型数据
        Student stu2 = new Student();
        stu2.setName("小红");
        stu2.setMoney(200.1f);
        stu2.setAge(19);
        //1.3 将两个对象模型数据存放到List集合中
        List<Student> stus = new ArrayList<>();
        stus.add(stu1);
        stus.add(stu2);
        model.addAttribute("stus", stus);

        //添加日期
        Date date = new Date();
        model.addAttribute("today",date);
//        添加数值
        model.addAttribute("point",102920122);
        return "04-innerFunc";
    }
}
